<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<!-- var 和 let 、const 区别 -->
<!-- 1. 变量提升
        var 存在变量提升, 即变量可在声明之前调用，值为undefined
        let 和const 不存在变量提升，即它们所声明的变量一定要在声明后使用，否则报错。
     2. 暂时性死区
        var 不存在暂时性死区
        let const 存在暂时性死区，只有等到声明变量的那一行代码出现，才可以获取和使用该变量。
     3. 块级作用域
        var 不存在块级作用域
        let const 存在块级作用域 
     4. 重复声明
        var 允许重复声明变量，let 和 const 在同一作用域不允许重复声明变量
     5. 修改声明的变量
        var 和 let 可以，const 声明一个只读的常量。一旦声明，常量的值就不能改变。
     6. 使用
        能用const 的情况尽量使用const ,其他情况大多数使用let ，避免使用var -->

<body>
    <script>
        const a = 1
            // a = 8 // "Uncaught TypeError: Assignment to constant variable."
        console.log(a);

        let arr = [1, 2, 3]
        let b = arr.join('-')
        console.log(b, 'b');
    </script>
</body>

</html>